Generally, under the current state of technology and in the past, television has been delivered to the residential home either through radio-frequency broadcasts, satellite downlink, or over coaxial cable television (CATV) network. Data network communications, such as Internet access, have been delivered via the telephone networks through dial-up connections, ISDN (Integrated Services Digital Network), and DSL (Digital Subscriber Line) lines or over hybrid broadcast/data CATV networks, where a portion of the bandwidth transmitted by the coaxial cable is allocated for shared data network functionality using a CSMA/CD-style transmission protocol. Less commonly, data connections to the home are provided via satellite links where data are downloaded via the satellite link and uploads are handled through land lines, such as the telephone network. Another technique is to transmit data to the home via wireless, CAMA, for example, links.
Almost universally, the clients or network devices in the residences are personal computers. Typically, they execute application programs such as email clients and browsers that utilize the data network connectivity offered by one of the above techniques.
The trend, however, is towards a more ubiquitous computing model where the network devices in the home will be embedded systems designed for a particular function or purpose. This has already occurred to some degree. Today, for example, CATV network set-top boxes typically have limited data communication capabilities. Their main function is to handle channel access issues between residential users and a server on the cable TV network.
In the future, the functionality offered by these set-top boxes or other embedded platforms, such as a game system, will be expanded. For example, they may offer Internet browsing capabilities and e-commerce serving capabilities. Moreover, it is anticipated that common-household appliances will also have network functionality, in which they will be attached to the network to automate various tasks.
The data networks must evolve with deployment of these embedded systems. Where the personal computer can be updated with new network drivers as the network evolves, embedded client systems remain relatively static. Moreover, the process of installation in the residence must be made less complicated so that a network technician is not required every time a new embedded device is connected onto the network.
As the ubiquitous computing model is deployed, many of the network devices installed on the data networks will be embedded devices, as opposed to the more complex systems such as personal computers. This has advantages in that embedded devices tend to be more stable due to stable configuration and operating systems.
The disadvantage, however, is in the flexibility of the network devices. It is more difficult for those systems to be adapted to changes in configuration or changes to the network. As a result, the network infrastructure must be more intelligent to maintain these embedded devices.
One issue that arises involves driver installation. Many times a peripheral device is connected to an embedded device. It would be desirable if the network could handle the installation of the drivers necessary to enable the network device to use the peripheral.
The present disclosed system is directed toward a communication and management system that dynamically targets network devices for content deployment, such as application programs, device drivers, configuration files, and registry subhives.
Moreover, the present system targets users of network devices for promotions, such as advertisements offered by Internet e-commerce sites. Promotions are generally icons or graphic images with links to host web servers overlaying a video display, but also includes audio and video clips or data streams.
Network devices and their users are targeted through user profiles. User profiles are created when network devices register with the system server and are continually updated with information provided by user activity and event logs that are periodically uploaded from each device.
The present invention implements a scalable messaging system for data transmission between the system server and among the network devices such that it is neutral as to the specific hardware platforms on which it is implemented.
In general, according to one aspect, the present invention concerns a system for driver installation on a network device over a data network. The system comprises a system agent that detects an identification message from a peripheral device when attached to the network device. Information concerning this message is then transferred to a system manager. The system manager compares the information to a database of driver information and notifies the network device regarding an appropriate driver for the peripheral device. In this way, the system supports changes on the embedded devices.
In general, according to one aspect, the identification message is a plug-and-play string that is generated by the peripheral device, typically when attached to the network device. The system agent, on the network device, transfers at least part of this string to the system manager. The system manager then compares the string to a database of strings for supported peripherals.
When the appropriate driver for the peripheral is found, the system agent is notified of a location of the driver on the network. Preferably, a bulk download transfer agent then requests download of the file at the location. A bulk transfer download manager, executing on the server system, answers this request by loading the requested file to the network device.
Preferably, the server system maintains a status of the network devices. For example, once the driver has been loaded, the system manager is notified by the network device and updates a database storing a status of the network device.
Further, the system preferably handles the disconnection of the peripheral at the network device. Preferably, when the peripheral is disconnected, the network device requests uninstallation instructions. This allows the network device to save operating system memory, and to load new peripheral devices if required without restart. Preferably, the system manager provides uninstallation instructions to the network device. Once successful uninstallation of the driver has occurred, the system manager is notified by the system agent. The system manager then updates its database again concerning the status of the network device.
In general, according to another aspect, the invention also features a method for driver installation on a network device over a data network. The method comprises the network device detecting an identification message for a peripheral device when attached to the network device. The network device transfers information regarding identification of the peripheral device to the server system. A system manager of the server system compares the information to a database of driver information to find an appropriate driver. The system manager then notifies the network device regarding the appropriate driver for the peripheral devices.
The above and other features of the invention including various novel details of construction and combinations of parts, and other advantages, will now be more particularly described with reference to the accompanying drawings and pointed out in the claims. It will be understood that the particular method and device embodying the invention are shown by way of illustration and not as a limitation of the invention. The principles and features of this invention may be employed in various and numerous embodiments without departing from the scope of the invention.